// 泛型 指定义时函数，接口，类时不能明确指定具体类型，在调用时才去传递具体类型，极大程度重复利用代码

export {}
// 冗余
function createNumberArray (len: number, value: number): number[] {
  const arr = Array<number>(len).fill(value)
  return arr
}

function createStringArray (len: number, value: string): string[] {
  const arr = Array<string>(len).fill(value)
  return arr
}
// 使用泛型解决，把不确定的参数传入T
function createArray<T> (len: number, value: T): T[] {
  const arr = Array<T>(len).fill(value)
  return arr
}

// const res = createNumberArray(3, 100)
// res => [100, 100, 100]

const res = createArray<string>(3, 'foo')